﻿using BCEntity.TMS.VehicleTransportFaq;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace BCData.TMS.VehicleTransportFaq
{
    public interface IVehicleTransportFaqData
    {
        /// <summary>
        /// 删除车辆运输常见问题记录
        /// </summary>
        /// <param name="vehicleTransportFaqId"></param>
        /// <returns></returns>
        Task<bool> DeleteAsync(long vehicleTransportFaqId);

        /// <summary>
        /// 获取车辆运输常见问题记录
        /// </summary>
        /// <param name="vehicleTransportFaqId"></param>
        /// <returns></returns>
        Task<VehicleTransportFaqEntity> GetEntityAsync(long vehicleTransportFaqId);

        /// <summary>
        /// 查询车辆运输常见问题记录
        /// </summary>
        /// <param name="faqCategoryId"></param>
        /// <param name="title"></param>
        /// <param name="question"></param>
        /// <param name="answer"></param>
        /// <param name="keyWord"></param>
        /// <param name="isShow"></param>
        /// <param name="isDelete"></param>
        /// <param name="isReply"></param>
        /// <param name="isSolve"></param>
        /// <param name="enable"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="replyEmail"></param>
        /// <param name="sortName"></param>
        /// <param name="ascending"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        Task<(IEnumerable<VehicleTransportFaqEntity>, int)> GetListAsync(int? faqCategoryId, string title, string question, string answer, string keyWord, bool? isShow, bool? isDelete, bool? isReply, bool? isSolve, bool? enable, DateTime? start, DateTime? end, string replyEmail, string sortName, bool? ascending, int pageIndex, int pageSize);

        /// <summary>
        /// 添加新车辆运输常见问题纪录
        /// </summary>
        /// <param name="vehicleTransportFaqEntity"></param>
        /// <returns></returns>
        Task<VehicleTransportFaqEntity> InsertAsync(VehicleTransportFaqEntity entity);


        /// <summary>
        /// 修改车辆运输常见问题记录
        /// </summary>
        /// <param name="vehicleTransportFaqEntity"></param>
        /// <returns></returns>
        Task<VehicleTransportFaqEntity> UpdateAsync(VehicleTransportFaqEntity entity);

        /// <summary>
        /// 查询车辆运输常见问题记录 分页
        /// </summary>
        /// <param name="faqCategoryId"></param>
        /// <param name="title"></param>
        /// <param name="question"></param>
        /// <param name="answer"></param>
        /// <param name="keyWord"></param>
        /// <param name="isShow"></param>
        /// <param name="isDelete"></param>
        /// <param name="isReply"></param>
        /// <param name="isSolve"></param>
        /// <param name="enable"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="replyEmail"></param>
        /// <param name="sortName"></param>
        /// <param name="ascending"></param>
        /// <returns></returns>
        Task<IEnumerable<VehicleTransportFaqEntity>> GetListAsync(int? faqCategoryId, string title, string question, string answer, string keyWord, bool? isShow, bool? isDelete, bool? isReply, bool? isSolve, bool? enable, DateTime? start, DateTime? end, string replyEmail, string sortName, bool? ascending);
    }
}